home *** CD-ROM | disk | FTP | other *** search
/ MIDICraft's MIDINET CD-ROM / MIDICraft's MIDINET CD-ROM.iso / DOSUTILS / MIDISTAT.DOC < prev    next >
Text File  |  1996-03-16  |  6KB  |  202 lines

  1.         ******************************
  2.             MIDISTAT v1.0
  3.     
  4.          statistics of midi binaries 
  5.               by Guenter Nagler 
  6.                 1996 
  7.           (gnagler@ihm.tu-graz.ac.at)
  8.         ******************************
  9.  
  10. [0] FEATURES
  11.     + reads a binary midi file
  12.     + writes statistic text to standard output
  13.     + number of tracks
  14.     + used channels per tracks
  15.     + used programs per track (except gm drum channel 10, gm program names)
  16.     + used notes per track (note names)
  17.     + used velocities per track (note on)
  18.     + used volume values per track
  19.  
  20. [1] BACKGROUND
  21. When I wrote the utility MIDIDRUM that splits tracks by instruments
  22. I needed the proof that each track really contains only one instrument (program)
  23. or drum instrument (note).
  24. This can hardly be done with manual checking of midi files, so I wrote
  25. this simply program that gives me the statistics per track.
  26.  
  27. Sometimes I use this utility when I want to change volume or velocity of
  28. a midi track. The utility MIDIFADE needs percentage values of original
  29. velocities and so I check first which original volume or velocity values
  30. were used and decide percentage value according to minimum or maximum value,
  31. so that the changed values will not exceed the limits.
  32.  
  33. [2] FILES DESCRIPTION
  34.  
  35. MIDISTAT.EXE.........converter program
  36. MIDISTAT.DOC.........this file, showing usage of MIDISTAT.EXE
  37. MIDIIO.HPP..........header file for a c++ midi parser
  38. MIDIIO.CPP..........source code for a c++ midi parser
  39. MIDISTAT.CPP.........c++ source code for modifying midi files
  40. MIDISTAT.MAK.........make file for project
  41. MIDISTAT.CFG.........compiler options for make
  42. MIDISTAT.PRJ.........compiler project for Borland (tm) c++ compilers
  43. only MIDISTAT.EXE is required to run program
  44.  
  45. [3] COPYRIGHT
  46.  
  47. MIDISTAT (c) 1996 was created by Guenter Nagler.
  48.  
  49. MIDISTAT is free and may be used as you wish with this one exception:
  50.  
  51.     You may NOT charge any fee or derive any profit for distribution
  52.     of MIDISTAT.  Thus, you may NOT sell or bundle MIDISTAT with any
  53.     product in a retail environment (shareware disk distribution, CD-ROM,
  54.     etc.) without permission of the author.
  55.  
  56. You may give MIDISTAT to your friends, upload it to a BBS, or ftp it to
  57. another internet site, as long as you don't charge anything for it.
  58.  
  59. [4] DISCLAIMER
  60.  
  61. MIDISTAT was designed to handle 100% compatible general midi files.
  62. The parser was tested with 2000 different midi files but I can not say if 
  63. each 100% midi compatible midi file can be correctly converted.
  64. So I give no guarantees of the results, especially with non 100% 
  65. compatible midi files.
  66. If you find a midi file that you think to be 100% compatible midi
  67. that is not correctly converted, please send a sample file to 
  68. gnagler@ihm.tu-graz.ac.at . 
  69.  
  70. Use MIDISTAT at your own risk.  Anything you do with MIDISTAT is your
  71. responsibility, and not the author's.  Any damage caused to any person,
  72. computer, software, hardware, company, or business by running MIDISTAT
  73. is your responsibility, and the author will not be liable.
  74.  
  75. If you don't understand these terms, or are not sure of something, or
  76. are afraid something bad might come of using MIDISTAT, don't  use  it!
  77. You are here forewarned.
  78.  
  79. [5] INSTALLATION
  80.  
  81. [MSDOS]
  82. Simply copy MIDISTAT.EXE in a directory that is in your path.
  83. When you start the program without arguments
  84.  
  85. [UNIX]
  86. compile sources with your C++ compiler (e.g. GNU Compiler g++):
  87.  
  88. g++ -o midistat midistat.cpp midiio.cpp
  89.  
  90. and run program
  91.  
  92. $ midistat
  93.  
  94. C:\> midistat
  95.  
  96. you should get the usage text (see next section)
  97.  
  98. [6] USAGE
  99.  
  100. usage: midistat filename.mid [ > output]
  101.  
  102. The parts in brackets [...] are optional.
  103.  
  104. "> output" means that you can redirect the output of midistat to
  105. a file or printer. By default the output is written on your terminal.
  106.  
  107. The program MIDISTAT has following hidden option:
  108. -version    get program version
  109.       
  110. [8] SUGGESTIONS / COMMENTS / BUG REPORTS / QUESTIONS
  111.  
  112.          WWW:    http://hgiicm.tu-graz.ac.at/Cpub
  113.           contains all my dos/unix midi programs
  114.          EMAIL:  gnagler@ihm.tu-graz.ac.at
  115.  
  116. [9] EXAMPLE
  117. example:  statistics of a midi file format 0 file
  118. command>midistat format0.mid
  119.  
  120. format0.mid: 1 Track
  121. Track 1:
  122.   Channels: 1-5 9 10 12-16
  123.   Notes: c1 f1 g1-a1 c2 d2 e2-a#2 c3-d3 e3-g3 a3 h3 c4 d4 e4 f4 g4 a4-c5 d5-f5 g5-d6
  124.   Programs: CleanGtr FretLess SlowString Choir Trumpet FrenchHorn Clarinet PanFlute Shakuhachi SynCalinope Fantasia
  125.   Velocity: 26 36 37 39-49 51-53 55-58 60 62-64 66-69 72 73 76-78 81-83 85 86 88 89 92 94 96 98 103 109 111-113 115 123
  126.   Volume: 0 127
  127.  
  128. Channels 1-5 means that all channels within range 1 and 5 are used (1,2,3,4,5)
  129.  
  130. example:  statistics of a midi file format 1 file
  131. command>midistat format1.mid
  132.  
  133. format1.mid: 13 Tracks
  134. Track 1:
  135. Track 2:
  136.   Channels: 1
  137.   Programs: PanFlute
  138.   Volume: 127
  139. Track 3:
  140.   Channels: 2
  141.   Notes: c1 f1 g1-a1 c2 d2 e2 g2 a2
  142.   Programs: FretLess
  143.   Velocity: 96
  144.   Volume: 127
  145. Track 4:
  146.   Channels: 3
  147.   Notes: d3 e3 f3 g3 a3 c4 d4 e4 g4
  148.   Programs: CleanGtr
  149.   Velocity: 53 63
  150.   Volume: 0 127
  151. Track 5:
  152.   Channels: 4
  153.   Programs: Trumpet
  154.   Volume: 127
  155. Track 6:
  156.   Channels: 5
  157.   Notes: d4 e4 a4 h4 c5
  158.   Programs: Shakuhachi
  159.   Velocity: 66 78 113
  160.   Volume: 0 127
  161. Track 7:
  162.   Channels: 9
  163.   Notes: e4 f4 g4 a4 h4 c5 d5 e5 f5 g5 a5 h5 c6 d6
  164.   Programs: SynCalinope
  165.   Velocity: 67 77
  166.   Volume: 127
  167. Track 8:
  168.   Channels: 10
  169.   Notes: c2 d2 f2-a#2 c#3 f#3 a3 h3 a4 a#4 d#5 g#5-a#5 c#6
  170.   Velocity: 26 36 37 39-49 51-53 55 56 58 60 64 66 68 69 72 76 81 85 86 89 94 96 98 103 109 111 115 123
  171.   Volume: 127
  172. Track 9:
  173.   Channels: 12
  174.   Notes: c3 h3 c4 d4 e4 f4 g4 a4 c5 d5 e5 f5 g5
  175.   Programs: SlowString
  176.   Velocity: 52 62 72 82 85 92
  177.   Volume: 127
  178. Track 10:
  179.   Channels: 13
  180.   Notes: h4 c5 d5-e5 g5 c6
  181.   Programs: Fantasia
  182.   Velocity: 58 63 68 73
  183.   Volume: 127
  184. Track 11:
  185.   Channels: 14
  186.   Notes: d3 e3 g3 a3 h3 c4 d4 e4
  187.   Programs: FrenchHorn
  188.   Velocity: 73 83 88
  189.   Volume: 127
  190. Track 12:
  191.   Channels: 15
  192.   Notes: c4 d4 e4 f4 g4 a4 h4 c5 d5 e5
  193.   Programs: Choir
  194.   Velocity: 57 77
  195.   Volume: 127
  196. Track 13:
  197.   Channels: 16
  198.   Notes: e4 g4 a4 h4 c5 d5 e5 f5 g5
  199.   Programs: Clarinet
  200.   Velocity: 63
  201.   Volume: 127
  202.